The Data-Dependence Graph of Adjoint Programs

نویسنده

  • Laurent Hascoët
چکیده

Automatic Di erentiation is a technique that permits generation of adjoint programs, which compute gradients. In scienti c computation, these gradients are a fundamental tool for optimization or data assimilation. Computation of a gradient is relatively expensive, and should therefore be optimized whenever possible. The study of these program optimizations is most often based on the data-dependence graph. Under precise assumptions, we prove that the adjoint program's data-dependence graph is isomorphic to a sub-graph of the original data-dependence graph. The proof relies on a re ned de nition of the notion of data-dependence, and on a formal de nition of adjoint programs in terms of products of local Jacobian matrices. This theorem can be used to transpose optimizations of the original program, to the adjoint program. It can also justify speci c transformations on the adjoint. We give some examples of such applications. Key-words: Automatic Di erentiation, Adjoint, Gradients Computation, Optimization, Data-Dependence, Parallellization Le graphe de dépendance des données des programmes adjoints Résumé : La Di érentiation Automatique est une technique de génération de programmes adjoints, qui calculent des gradients. En calcul scienti que, ces gradients sont une information essentielle pour l'optimisation ou l'assimilation de données. Le calcul d'un gradient est une opération relativement chère, qu'il est souhaitable d'optimiser. L'un des outils fondamentaux pour ce type d'optimisation de programmes est le graphe de dépendances de données. Sous des hypothèses que nous précisons, nous montrons que le graphe de dépendance des données correspondant au programme adjoint est isomorphe à un sous-graphe du graphe de dépendance des données du programme initial. La démonstration s'appuie sur une dé nition ra née de la notion de dépendance de données, et sur la dé nition formelle des programmes adjoints en termes de produits de matrices jacobiennes élémentaires. Ce théorème permet de transposer pour le programme adjoint certaines transformations possibles sur le programme initial, mais aussi d'appliquer des optimisations spéci ques. Nous en donnons quelques exemples pour des optimisations courantes. Mots-clés : Di érentiation Automatique, Adjoints, Calcul des Gradients, Optimisation, Dépendance des Données, Parallélisation DDG of Adjoint Programs 3

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Iteration-wise Adjoining

The reverse or adjoint mode of Automatic Diierentiation is a software engineering technique that permits eecient computation of gradients. However, this technique requires a lot of temporary memory storage. In this paper, we present iteration-wise adjoining, a reenement that reduces memory consumption in the case of parallel loops, and we give a proof of its correctness, based on properties of ...

متن کامل

Eecient Construction of Program Dependence Graphs*

We present a new technique for constructing a program dependence graph that contains a program's control ow, along with the usual control and data dependence information. Our algorithm constructs a program dependence graph while the program is being parsed. For programs containing only structured transfers of control, our algorithm does not require information provided by the control ow graph o...

متن کامل

Term Dependence Graphs 1

Program slicing is a method for decomposing programs by analyzing their data and control flow. It has many applications in the field of software engineering (like program debugging, testing, code reuse, maintenance, etc). The so called program dependence graph—a data structure that stores control and data dependences between the statements of imperative programs—is a key ingredient of many slic...

متن کامل

On Optimal DAG Reversal

Runs of numerical computer programs can be visualized as directed acyclic graphs (DAGs). We consider the problem of restoring the intermediate values computed by such a program (the vertices in the DAG) in reverse order for a given upper bound on the available memory. The minimization of the associated computational cost in terms of the number of performed arithmetic operations is shown to be N...

متن کامل

Semantical Equivalence of the Control Flow Graph and the Program Dependence Graph

The program dependence graph (PDG) represents data and control dependence between statements in a program. This paper presents an operational semantics of program dependence graphs. Since PDGs exclude artificial order of statements that resides in sequential programs, executions of PDGs are not unique. However, we identified a class of PDGs that have unique final states of executions, called de...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2001